{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c368bb9d",
   "metadata": {},
   "source": [
    "Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n",
    "SPDX-License-Identifier: Apache-2.0\n",
    "\n",
    "# Exploring RDF with openCypher - Air Routes\n",
    "\n",
    "[Resource Description Framework (RDF)](https://en.wikipedia.org/wiki/Resource_Description_Framework) is a framework for representing information about resources in a graph form. Unlike traditional databases that store data in tables, RDF structures data as statements of fact called ‘triples,’ consisting of a subject, predicate, and object. This simple yet powerful model allows for the creation of intricate networks of data.\n",
    "\n",
    "There are numerous publicly available RDF datasets covering a wide range of fields, including geography, life sciences, cultural heritage, and government data.\n",
    "\n",
    "These datasets, along with the considerable amount of RDF embedded within web pages, are collectively known as the [Semantic Web](https://en.wikipedia.org/wiki/Semantic_Web) of [Linked Data](https://en.wikipedia.org/wiki/Linked_data).\n",
    "\n",
    "[SPARQL](https://en.wikipedia.org/wiki/SPARQL) is the standard query language for RDF. While powerful, it lacks some useful features, such as path finding.\n",
    "\n",
    "[openCypher](https://opencypher.org/) is a popular graph query language that enables intuitive and expressive querying, including path finding and pattern matching. \n",
    "\n",
    "[Neptune Analytics](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/what-is-neptune-analytics.html) can run openCypher queries and graph algorithms over RDF data.\n",
    "\n",
    "In this notebook, we explore an RDF graph model called Air Routes, which describes airports, airlines, and flight paths around the world. The data originates from the [OpenFlights Airports Database](https://openflights.org/data.php).\n",
    "\n",
    "### The Air Routes Ontology (Schema)\n",
    "\n",
    "The Air Routes ontology and data used in this notebook are available in a single NTRIPLES file on S3: `s3://aws-neptune-customer-samples-[AWS_REGION_HERE]/airroutes-rdf/airroutes.nt`\n",
    "\n",
    "In this notebook, we work with a subset of the ontology, shown here:"
   ]
  },
  {
   "attachments": {
    "Airroutes%20-%20Copy%20of%20Page%202%20%282%29.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "0fff7869",
   "metadata": {},
   "source": [
    "![Airroutes%20-%20Copy%20of%20Page%202%20%282%29.png](attachment:Airroutes%20-%20Copy%20of%20Page%202%20%282%29.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "66712734",
   "metadata": {},
   "source": [
    "## Creating the Graph\n",
    "\n",
    "Run the following two cells to load the Air Routes RDF graph, using [Neptune batch load](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/batch-load.html).  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f9b16519669e1e39",
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import graph_notebook as gn\n",
    "\n",
    "config = gn.configuration.get_config.get_config()\n",
    "region = config.aws_region"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5d200238-f85e-4caf-907d-c438b9a4647c",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "%load -s s3://aws-neptune-customer-samples-{region}/airroutes-rdf/airroutes.nt -r {region} -f ntriples --run"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae564ed4",
   "metadata": {},
   "source": [
    "## Retrieving Instances Count by Class / Node Label \n",
    "\n",
    "RDF classes become node labels in openCypher. Here, we execute a query to show how many instances of each RDF class / node label exist in the graph.\n",
    "\n",
    "#### SPARQL equivalent\n",
    "\n",
    "```\n",
    "select ?type (count(?s) as ?count) where {\n",
    "    ?s a ?type .\n",
    "} \n",
    "group by ?type\n",
    "\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5a8776f5",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "%%oc\n",
    "\n",
    "MATCH (n)\n",
    "WITH labels(n) AS lbls\n",
    "UNWIND lbls AS lbl\n",
    "RETURN lbl AS Label, COUNT(*) AS Count\n",
    "ORDER BY Count DESC;"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a6066612",
   "metadata": {},
   "source": [
    "### Listing all RDF Object Properties / LPG Edge Labels\n",
    "\n",
    "RDF object properties are used to relate two resources (i.e., instances of classes) together. For example, `:hasDirectRouteTo` : \n",
    "\n",
    "```:JFK :hasDirectRouteTo :LondonHeathrow```\n",
    "\n",
    "RDF object properties become edge labels in openCypher.\n",
    "\n",
    "Execute the next cell to see a list of all the RDF object properties / edge labels in the graph.\n",
    "\n",
    "#### SPARQL equivalent:\n",
    "\n",
    "```\n",
    "SELECT DISTINCT ?p WHERE {\n",
    "    ?s ?p ?o .\n",
    "    FILTER (isIRI(?o))\n",
    "} GROUP BY ?p\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "138e34e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "MATCH ()-[r]-()\n",
    "RETURN DISTINCT type(r) AS relType"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae4db7b7",
   "metadata": {},
   "source": [
    "### Listing all RDF literal properties / LPG node properties\n",
    "\n",
    "RDF literal properties link a resource to a literal value, such as a string, number, or date.\n",
    "For example, `:hasName` : \n",
    "\n",
    "```:JFK :hasName \"John F. Kennedy International Airport\"```\n",
    "\n",
    "RDF literal properties become node properties in openCypher.\n",
    "\n",
    "Execute the next cell to see a list of all the RDF literal properties / LPG node properties in the graph.\n",
    "\n",
    "#### SPARQL equivalent:\n",
    "\n",
    "```\n",
    "SELECT DISTINCT ?p WHERE {\n",
    "    ?s ?p ?o .\n",
    "    FILTER (isLITERAL(?o))\n",
    "} GROUP BY ?p\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7d6c5416",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "\n",
    "MATCH (n)\n",
    "WITH DISTINCT keys(n) AS nodeKeys\n",
    "UNWIND nodeKeys AS key\n",
    "RETURN DISTINCT key;"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f4e26cdf",
   "metadata": {},
   "source": [
    "### Namespace Prefixes\n",
    "\n",
    "In SPARQL querying, namespace prefixes are often used to make queries easier to read and write. With namespace prefixes, you can define a prefix for part of the fully qualified IRI and use the prefix in its place. \n",
    "\n",
    "We have extended the syntax for openCypher to enable this feature when writing openCypher over RDF. \n",
    "\n",
    "Prefixes can be defined by adding them to the beginning of the query:\n",
    "\n",
    "```\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX nepr: <http://neptune.aws.com/ontology/airroutes/resource#>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "```\n",
    "And then they can be used with a double colon:\n",
    "\n",
    "```\n",
    "RETURN airport.rdfs::label, airport.nepo::IATA\n",
    "```\n",
    "### Querying using full IRIs\n",
    "\n",
    "Queries can be designed using fully qualified IRIs..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4ca1e2c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "\n",
    "MATCH (airport: `<http://neptune.aws.com/ontology/airroutes/Airport>`)\n",
    "WHERE airport.`<http://neptune.aws.com/ontology/airroutes/ICAO>` = \"KMHT\"\n",
    "RETURN airport.`<http://www.w3.org/2000/01/rdf-schema#label>`,\n",
    "       airport.`<http://neptune.aws.com/ontology/airroutes/IATA>`"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37179862",
   "metadata": {},
   "source": [
    "### Querying using Namespace Prefixes\n",
    "\n",
    "As an alternative, queries can be designed using namespace prefixes:\n",
    "\n",
    "#### Finding an Airport by its property, the IATA code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2b5b09cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "\n",
    "MATCH (airport: nepo::Airport)\n",
    "WHERE airport.nepo::IATA = \"MHT\"\n",
    "RETURN airport.rdfs::label"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2cbf1c0",
   "metadata": {},
   "source": [
    "#### Finding an Airport node by its ID (RDF Resource IRI):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "250f3f9c",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX nepr: <http://neptune.aws.com/ontology/airroutes/resource#>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "\n",
    "MATCH (airport: nepo::Airport)\n",
    "\n",
    "WHERE id(airport) = nepr::AIRPORT_507    \n",
    "\n",
    "RETURN airport.rdfs::label"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08c8d8cf",
   "metadata": {},
   "source": [
    "### Finding Direct Flights\n",
    "\n",
    "Here is an openCypher query that returns all the paths in the graph of direct flights between airports. The query is limited to avoid a large response set.\n",
    "\n",
    "Select the 'graph' tab in the response to see a network diagram of the paths.\n",
    "Returning paths in this manner ensures the diagram can be easily rendered as a network."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0d2b120f",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc -d <http://www.w3.org/2000/01/rdf-schema#label> \n",
    "\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "\n",
    "MATCH directFlights = (\n",
    "    (origin: nepo::Airport)\n",
    "        <-[:nepo::source]-(r: nepo::Route)-[:nepo::destination]->\n",
    "    (destination: nepo::Airport)\n",
    ")\n",
    "RETURN directFlights\n",
    "LIMIT 30"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1dbef32b",
   "metadata": {},
   "source": [
    "### Finding 3 Hop Flights\n",
    "\n",
    "The direct path query is not sufficient to show journeys where multiple stops exist between the source and destination airports. \n",
    "\n",
    "The journey between Manchester-Boston and Helsinki has a minimum of three connecting flights. In total, there are 118 possible routes you could take to make the journey. Here we show the RDFS labels of the Route nodes in the graph:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "188a8d67",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "\n",
    "MATCH (origin:nepo::Airport {nepo::IATA: 'MHT'}) \n",
    "MATCH (destination:nepo::Airport {nepo::IATA: 'HEL'})\n",
    "\n",
    "MATCH p=(origin:nepo::Airport)\n",
    "        -[:nepo::source]-(r)-[:nepo::destination]->()\n",
    "        -[:nepo::source]-(r2)-[:nepo::destination]->()\n",
    "        -[:nepo::source]-(r3)-[:nepo::destination]->\n",
    "        (destination:nepo::Airport)\n",
    "        \n",
    "RETURN r.rdfs::label, r2.rdfs::label, r3.rdfs::label"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4be470d0",
   "metadata": {},
   "source": [
    "### Adding New Edges with Properties\n",
    "\n",
    "With RDF1.1, you cannot add properties to edges(predicates). However, because the graph is now in our 1Graph model (interoperable between openCypher and RDF), we can add a new edge, and set a property for the number of stops on the journey. \n",
    "\n",
    "Here, we find all the routes with two connecting flights, then for each, we add a new direct edge and a property representing the number of stops:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5abf86f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "\n",
    "MATCH p=(origin:nepo::Airport)\n",
    "        -[:nepo::source]-(r)-[:nepo::destination]->()\n",
    "        -[:nepo::source]-(r2)-[:nepo::destination]->\n",
    "        (destination:nepo::Airport)\n",
    "          \n",
    "CREATE (origin)-[:nepo::hasMultiStopRouteTo {nepo::stops: 2}]->(destination)                                 "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8086e49d",
   "metadata": {},
   "source": [
    "### How many stops are there on a journey between Edinburgh and Helsinki?\n",
    "\n",
    "With the query below, we can see that a journey between Edinburgh and Helsinki takes two stops."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1ac4eba4",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "\n",
    "MATCH (origin:nepo::Airport {nepo::IATA: 'EDI'}) \n",
    "MATCH (destination:nepo::Airport {nepo::IATA: 'HEL'})\n",
    "\n",
    "MATCH (origin)-[r:nepo::hasMultiStopRouteTo]->(destination)\n",
    "\n",
    "RETURN DISTINCT r.nepo::stops"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ee7e5c5",
   "metadata": {},
   "source": [
    "### Using Pathfinding\n",
    "\n",
    "While we could extend this feature to record the number of stops for all multi-stop journeys, a more intelligent modification can be made to the graph, making it easier to compute the number of stops on any journey.\n",
    "\n",
    "Execute the following query to extend the model. This will add an edge directly connecting airports if such a direct route is available."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f21e765a",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "\n",
    "MATCH (origin: nepo::Airport)\n",
    "        <-[:nepo::source]-(r: nepo::Route)-[:nepo::destination]->\n",
    "      (destination: nepo::Airport)\n",
    "\n",
    "CREATE (origin)-[:nepo::hasDirectRouteTo]->(destination)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f1435e3",
   "metadata": {},
   "source": [
    "### The extended Ontology / Schema"
   ]
  },
  {
   "attachments": {
    "Airroutes%20-%20Copy%20of%20Copy%20of%20Page%202.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAB3kAAALyCAMAAADg957KAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAL0UExURf///+7v8MXHyrm7v9zd3+bn6Kuusl1jajpBSp2hpfb2936DiWFsenqHmJqqv4+esm55ifv8/NHT1UxSW6O0ysjc98/k/7TH325zelRearzP6EhQW8zh/MLW8I6SmKy+1YWTpZWZnk5UXJygpM7Q0l5kbIqOk1JZYJOXnO3u76SnrN/g4vLz9K6xtHV6gaWorHB1fPf5+Xp/hba4vIaKj0dOV0ZNVoCFir/BxHp/hPrw6t2LWfPWxPjo38xOAO3ApeKabum0k/bf0vz39NBeGOWngf78+/DLtdVtLtl9ROXl5fv7++7u7vb29jMzM3p6ere3t0ZGRldXV8/Pz5qamouLi9vb22lpaaioqMPDw/TbzPLUw/359/v08OWmftqBSt6QX9VxM/jp3+y9od2NW9VvMM9aEuy+ofbi1s9bE9yHU+Oedd+PX9RsLNNpJ9FiHdp/R/nt5um2ls5ZEfHTwO/Ks9h5P+WmgNd1OfDMt+KccNyIVNFfGtJlIueui9JlI+3Eq/Xh1c5XDfnv6duDTtJkIOm0ld+SY9l8ROGXau7FrOCWaNqASc5YD+erh+WlftVyNNqDTeixkPfm22Zrctd4PtFjH9RrLNyGUfLo4kZSVWmAdX+diZK2m3WPgMecgrdcJJ9PH4JHJUBBRrHguLfovcP3yKrWsYipkl5xa6PMqpvCo73vwlJhYMD0xmFnblthadDS1IOHjVRbYtfZ21BXXs1UCsfJzExSWsxRBWpvds5WDMxWDdBfGZSXnYyPld7f4b7Aw7a5vEdOVkhPV5ueo0ZNVU1UXOvs7VRaYri7v2xxeEJIUVJYYHN4fpGVmsTGyePBrFZQUnt/hZCUmURKU1ddZV5ja+Lk5VpgZ0VMVIuPlOrr7GRqcUpQWEtRWaarrkNKU0hPWKKlqqyvs3J3fZufo1thZ6yvsnyBiFleZrS2ukFIUU9WXUZMVUpQWUhOV4eLkUFHUKmssKmrsEVMVVNZYcnLzoiNkmRpcY+SmJmdoo3RHoAAAAABYktHRACIBR1IAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AcZFBIIxPIEBwAAaCZJREFUeNrt3XlgHNmB3/cmQZCPAIiDBEmcBJLRDHckzoyoEWc0PGc4JIfsBtCNG9ARO6vDWita7a4SaXe98RGt7F17bcfJ5MLBXMCQOIgdjkYZhklG0spS7Dg+Eh9x7kPZzeHEOVZOnOSf1HuvXtWr6gPd6KO6qr+fPzTNQnX16+5S/fqdlUoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCFQ4fb4uZIe9QfGgAAB3Po6DERS8cJXwBA/HR0yhDrOtEdKz29XbLYnX1Rf3wAAFTm5CkndvtPn4mhs71CDByK+gMEAKASh4QYHIo6Qg9saFicotYLAIiRjlOiayTq/KzC6LA4F/VnCABA+Y6LwTgH75kzZ4U4EvWHCABAuTqEGIs6O6t0gkovACA+jorBqJOzWmfFqag/RQAAytUpuqNOzqoN09wMAIiNARHfcc3GCXE86o8RAIAyiQQkb7/ojPpjBACgTEJEnZvVGxLHov4YAQAoUzKSV0T9MQIAUCaSFwCARiJ5AQBoJJIXAIBGInkBAGgkkhcAgEYieQEAaCSSFwCARiJ5AQBoJJIXAIBGInkBAGikWiVvd3f36cY/leQFAMRNrZJXFLrp0cjZ7t7e3p6x0cqfSvICAJKpjsl7elwYg2MjJC8AAKl6Ju+YsHWNmP3yUpbWZgBAC6lb8o4OO5tO9I+eOT3WMyijV2+ttn5L8gIA4q1uyXvC2dLjPh4ZNH8eI3kBAK3tAMkbbBo+PXS6YPJ2CTHsde6OyvqvfNAT3G10KL//d3Qo+AKjJbqISV4AQNwUT95BNywdZ53gPKuqrLLyKobHvQFTqiF5cHzUS95eIbrPuFHc7R/s7NCo3qZ0q4enR5107vVCu1tuPzuuXqHfPG/sxLCzT/dpedyilWWSFwAQH8WTd8jE7ZkRJ/3GZe1z0BswNa7/0Ov+c3g0L3mdVB0MHzKYvEPy2cHkPWv2cNupzejowRGSFwCQDCVam3tMe3GPjD6dg8Pj/UP9J0wmy2DsVRuG85K3J1jpVbq7ZWh3dw+puHX26OrtsZPXqeCe6O9X+a5anLvd4/eKri6SFwCQCKX6ebt03XbIpOqwaQbu15ls6sJu3VTt09PbO6Y2yVqw6A2npdcdrGqyQ/Y2GbPDY+ap3e4LdoWOT/ICAOKtVPLKiUFDKoBVDp712497uvtHdAD7IV14Pu/wiW57xFQgec8GtnV7jdimi/msqfuqLSQvACAJSo5t7pfNzN2m4jnkR6PW64/B6i+QjGNet7AcgpWfvF3Bbd1+Fo/rP477+/SQvACAZCg9q0hmq5N5o15EivGRwF+7/fArkIxjJ7zw7R3JS16T4lbyugeXD/Xxe0oen+QFAMRO6eSVPbn+HJ9+vQ5kj1szlU3AY/sl4+mh7vFhf/lIO3lNavvJ23smnLxmnxGSFwCQDPuspDFmtQo7iehWYQe781bPKHnbg7NdZiUNO3n7g0/NT95Ba3Q0yQsASIZ9kle2NQvrJn9DugKre2StNDxd+oZDI13uYCxvN2uWEMkLAGghpZPXbV8ObBtVNd/h0yoZ+/3wK7kg85g7TNnbrbeM5LVam0+TvACAZCiZvKedCu7ZrrwVMWQNVvbwWsl4Ni8ZT4+dDoaj+nvZydt1hhFWAIAkKpm8atpQgdCTE317ArOKwrN+Rob91JROVJq8vfpJpro9XmBFLJIXABBDpZK3Wy9V5S4eOTLeO2yqsbq22+/fjihvpQu50uSonY36hYQZDt27zwir3jP2ShpqjDXJCwBIgBLJO+oOpJJ31x3X6aqnBqnu37N6qs8Jr0oaXD1SZW23m72nB830Xe8+Cr37zCpSD4fdV1TN22aZDZIXABBnJZK3y+Sqe9eiMX2DwKF+Ob5ZVX9lG3JX99meLuGtHuklqlk8sr+/u1ffbkgFs4zg8Z4yk7dHrX/VPT4oxunnBQAkQ/Hk7fHbkt2H/d5NAt2WZF0XVbGal7xnxoaF5YQ+lL4NYG+ZyevdJXCcWUUAgIQomryjVvuuaW82s3mHu90O3xF1I3u5LHNvXvKeGRnrdcN3sMfr8j07rJuoy0veM2OyPu3eVZDkBQAkwD4raeSn3NDZoVF7w4h9K6L8/B5yBDeNlJr3WyJcRak/Rv0xAgBQpkqTt8FMyPf7E5hIXgBAnDVz8spuZPeGRif8SUgkLwAgzpo5edUAK9W/POgOpiZ5AQBx19TJq29SONxbcjYvyQsAiJOmTt4zQ71mFlN3qb1IXgBAbDR38jqp2t3rGBspuQ/JCwCIjWZP3rLSmeQFAMQGyQsAQCORvAAANBLJCwBAI5G8AAA0EskLAEAjkbwAADQSyQsAQCORvAAANBLJCwBAI5G8AAA0EskLAEAjkbwAADRSEpL3rBiI+mMEAKBMQgxFHZxV6xadUX+MAACUaUB0Vx99EesRbVF/jAAAlOmw6Io6OKvWRfICAGKjQ4jTUSdnlYaEOBT1xwgAQLmOiZ6oo7NKvXTzAgBi5HDcx1iNCdEe9YcIAED5OsXwaNTpWV3wHo/6IwQAoAIdp8TwWNT5eVCnTwjamgEAMdMxIMRgfwybnE/3dwkhzvVF/QECAFCZvuNC6Y0XVeZjR6L+9AAAqFxH24CIoWNHmU4EAIitjvY6+UfqdeCOqD8yAACaUPs/GnUJAABoJc+Ij0RdBAAAWsiz4rmoiwAAQOtoF+J81GUAAKB1/IwQNDcDANAwzzrJS3MzAAAN8rycd0tzMwAADfJRteTFx6IuBgAALeJZlbw0NwMA0BAX9DKPz0ZdDgAAWsML7grL3LseAIBGeNFN3meiLggAAK3ggrmrEM3NAAA0wEveDf1obgYAoP4+7iXvz0RdFAAAku+ifxN7mpsBAKi7F/zkFc9HXRgAABLvE1byfjTqwgAAkHRWYzPNzQAA1N3LdvLS3AwAQJ19MpC8L0RdHAAAkq3vUiB5X4y6PAAAJFuwsVmIC1EXCACARPtkKHlpbgYAoI76Xgkl78ejLhEAAEkWbmymuRkAgHp6NS95aW4GAKB+LuUl7yeiLhIAAMn1KZHvYtSFAgAgsV4rkLw0NwMAUHdO4kZdBAAAWgjJCwBAI5G8AAA0EskLAEAjkbwAADQSyQsAQCORvAAANBLJi2hdvuK4WssjygNeifptAUBRJC+ide2648ZBnvn6Fe2NGzcv29vlAa9XXa6rNxxvqBdwHlyr7Xu+ke/Nmr4CgGZG8iJaB0/e65Zbt28Gtx+0OFdNBl65HvT65UoP9aaTp4X/cuN6vtpmO4BmRvIiWrVJXscVk13VtDbf8TLwSl42vlHhsd4o+gOA5AVaG8mLaNUsea9ff6v60lwtkbzXb1Z2rLskL4CCSF5Eq8rkvXbzxo037rrpVf1ArdeDyXtb98G+7jZpV3Soy8Ubvd+8pryl34F2p8afK4DmRfKiHJdlOMgHTtDdtAcDXbt648ZVb4PcS/aHXn7rxluBftHLN+UwpUJdpV7yOs+5au1wRz7jRiCQbt544/UbN7x9rP7cy29YFcdrpqyXdWkuewOk3rwWPqSz903vkM7+quqsnnXFrojeua0O7720fjve277sR+cd+fBNWYjbbqze8Z9yNfgBXMvrkZaf5luEMJB0JC/KoXIodef1W6ru5zW7mmZTs0U+vqeabOVGL2du3grtp0Yf6Tx0k/fG3UBf6p3b7lNu3TA59Jap2d694b+Yl1s6em8Htl9RpZFlVN2+b5oG5HtetL35hn6ZW2/cSdkNzFdCyZt6025ufsu8nbvXrE9HPzY/JELNyN4nYLeIh5PXa4S+UvFoLgBxQvKiHDp5rwTSJHXH6gvVDb36j2abG713Xre6M1/Xqee3MetHV83fb+un3POf4Q6Wup13kGBu6b/fSYWS9/qbt9xjXL3lPf+um2zX/E0yjUskr/6nKvBluwdYJfa+yWt/Arf9DzWYvJfvWsc9UPM7gJggeVEOlS1vhNJQbbx15YofvTpw/YRTu5leUjt5Qsn7uv+cN/2n3LvlVxN1NN+7cq9A3Va549VKg8l72y2vrrXevaLyTffYenGvDl0yee/4PzjcHwV3rYjcL3l1Zdb9oPxQDSTvHVPJt3/JAEgkkhflcEPpyk03fWWl8Zqp19401UqTNzfuuBVMbzcZn1fv+vEVSl7Zquz+WW58093xzg03E90qrXzqm3K3W4G6rXbXPDuYvLJ1+vYb7gGcQt55wwSbzrq7N1M375lNN/wIDSbvW97bUY9kq7l+i7feTBVMXrt4+oWc41++Z8ru72vegSrWLfmedbHo7AWSi+RFOa54NUrdKHrVbFN1s2smlnTSyUe6gVXWTe969VadLve8Z1jJe/uOGcb0espNNxXl90w23fXS6JpcVKpA8r5eJHlvq2dd9uPstlsIVRrVcH3NvF7h5L189YqpCbspqrb7b3Gf5FXvS/Vg3wlUZ+3kfdOLdrcRn/ZmILlIXpTjipeZOrBMwrkTbQKhp0dJ3bRbed163h0vakIjrHTkXLOOaL/uNfPgVqlVIm+Y3A4mr/vSV/00e8t9QatV9/aVK7dvpPKTN+iaKaNuRXfTPLVv8ur+ZvXw3nWv4zqYvG+Z0puysvI0kFwkL8pxxVTv3Iy47cboXT3h9a4bFV7NOOUF8zU7Rq54Keux4yeQpWrS6+sm03Sf7K3b1mSlQsl7OxVO3jesv15RhTUN12q/YKNuqeS98qb37m+ESnDFL0mh5FXVZP1B3fNzO/jWb/gtA+4nG/VXDqBuSF6Uw29Z9qL0WjiZUm7auNNc3Vh5y4q/8IBh+3DSXS+Jbl7xx1ypJ9zx/nXr9uXACwSKmN/a7Lbt3g6V9qqusYaWuiievHfd3xNejd8r7+V9kzec4YG3fr3AJ1OgZACAFmMHQ5HkvZUKNECb+LhhR9Xr9j80ew0rk2B33ggcWS+LYU00uvem9QLGrcLJa0+5tdzQL3wv+DaLJ68ZF6U2m1nJ5gVKJ+/lcPLesd960eRlTi8QM+l0OuM+nEhPlNoz4+xa+C+T6dLPLH8nxJ8VDG/ayXvrii8VDMNCyRvILa1Q8urgvfe6bsY2gfSWH4b38kdY+fN+Ciavyvy7fmGv6vexT/LqkVQq091q+2377dyzk1dX9f3+5FCd1/qgLttvnTovkBRTU1M6T9NZ5+FUiT3TRf+cm5rK7vtCZe2E+AuPIfKGTgV3u27lhxsfer5u/mGMQsnrzfJJ3Q084c7NN+751eBgPt3z/lkweQM/ALRb+flWeGzzTettBY5jXsna10/mUPIWuP+unby37d8kBT5ZAE3PS97pKZIXNVAgeQsFynU/l8zYZm8AcMrUHoNHLpC8/ggjawELQy9vFWhVlm5fz488O3n9iUrB96Trn7flTKU3i87nVY/1lKSb1g+JN005rWlAd/OLUaim7791e4SVu77VzfyyAmh+M27yzjq5OpfOldiT5EU5CiXvXT9Q3rqq7wxwz2/BfcNEiRWeV73KnLmxQDB571rVZJW8fm3z8s0bZphWgeTVtydww7Fg8l7265GXb+g7KvgTeXQE3gnkn/3kN/1Yv2x2NW9RHkAPnL7j/dlPXn9FLv0Wr751zb/Rgp28uu1eH9ef/wsgRrJu8jr/nS+9J8mLcoSTV6aTytG73tJPb5ndrt+7bO5OcM388bpc++KyWcspf91m/SpuEr3phpa7nJP8qzWZ55oJfP0KN6y7BN60jxJq21b/kF2sqtIsl57SNXD5Tu6ZCH3Lz7/Ak/V7UPVjFaO3bpj3r3bRPxDuXnZvaaTrq3e9FNft8vIT8D47/52YWvs979O8Wqx1GkBTs5J3tvSeJC/KUXCtCB14d29c8SqPZgyUe6ch3WKsd7t1Q08UuhI6SIHkdafhyMWcb91ST72sU/LKG1dvvOFVOq+H3Q4eJRie7lDs27f9qrrO07vuBCa5SWf+vStvhO8SeNerzL95y37X+jWtNZfveu9RLwcpx3K5TeG33tDrkRRePdIt3703wqs7A4gJK3nTpfckeVGOgsl72Zpze8+vKPpTZ3Ud9Ka1m1mGqnTy+pOKrr7uViIDdzewbs9gHdken5SfvIEZvfr17DsiuatY3PMqrcEn3/SfFiiJu7yyd3+/u5e95L3pv9ab1m2IrHW4gvcqumEfNzTmGkBTyWazqcm5qamc/MfC/MzUdDY3qRN3IpudnppalHs4ZrNZ549zs+5so6Vsdkn+10/eydyiHI21mHP3UKGaXnIOtTjnx/fsvLPXjHwNfyckXzh5X1cPvTvemvvuBW4m6GWMv5u7iHKx5DUraXi3H7zqxracxOSn1y3rloR5Ry6avNYvgNfNJi/ib7klcF+lyF0CdROwNbPY3DzYK/BlM9vZP7g8sj9B+ZZ1E6LQ/Xn9d3jLvosvgKYjg1POHMql9HgqaXpCJW96ynAyecY8ntaZmXUj00veWW/v6QW1QYbqhNnmtlln5r2dJrydov4I0AA35dKHuutRLbl81dt+5e511aKquIOTr71x79brb1k9lVdvXLl3/crrN/w7zXvrNvuP5G4O/ejK3Vu3b94JvNzN27Jd+N6Vq27c3bDYw59vmKNc9Qut3Ln6xpXrd6/ctjZdu/G6U/7X3/Ji+84bV+7du30178mqGDduem/HedZt+9hvmQJbn86116/cvXJD//64LF/o3pUb9mqVb3oldV/7rTeu3LoVPC6AJiRTcUon74IMxPnc0uLU9Ey4zus8cCrDOZnROinDyatiOpubk9OQplWt1wnVmempmXn1JN1onZF/XczOqfxdcHcieeG5EqjEAUAiqfqnrpFmTWbOeVFp+nllKKu6rszOnHwQbm2ec5+SmTV75ORR5uSjiWn3Qc5skVXoGXcLyQsPyQugBXi1z9SEt3yGan4OJK+Tq0v6T+lsNmc/3yTvtDf/aM4NUxmz7iZZq87o2J7TW+TDhRTJiyCSF0ALkM2/+lHOrYamdFIGknfe65gN80dYmZWenS3T7vHcTE9l9MMFHcAp94jzKZIXQSQvgBYw5dVmc16FVCVlIHmXp4pFb/6sIrMlZ/1lUbVAW9kuj7iYInkRRPICaAF+xTTr9s+6WwPJOzmtB1DlT+71kzezkJvPOqb85PVyVh97ydmSc83pvUhe2EheAC0g0LmbC2/1VtKYcGcVTS9NBp/vJe/C9JRPbrBDNavq09mpoBTJi6CrwWkyAJBERZN3wd1mqrkTc260BhdyNsmrUjU759dmw8k7T/ICAFAieXPuNquBOa1XqVqyn+8m76TMXV0dXiicvDk1qiocsyQvAKDF+Mk772dqpnDyptyhVvYGN3mX/WHLuan8EVZZM8KK5AUAtDg/eXPe/CI1qygnH+TfMWHOrKnhcpN33m+FzlrJa/bUs3eXzVIdPpIXANBi/OSd9ZNyPpS8E7n5nLu/bFa2pxe5yevfyDdtjbCaWtbbJvShJ/0FnFOzS6weCQBoRX7y+stQmYWcveRd8Ocezbu5OpvLqRB1k3fOtDZPTJulJ3P+HOBFN1/nvC1yt+UUyYsD+PRntM9GXRDb5z7jibooAJqdlbwyPedn0wtL6o4JObnJtDY7/5Y3CJx0/ubGc+iOCTKss7MZ+Xf1MD0pQ3V6ano5nVmYN3VdWelVW5aslZxJXlTkH3NvhfcH7lR/rNr57B/0bv33j/9s1IUB0Nys5M0smuk+C9lQ8k7M+HOBFjPuXwL3KvJmDOX0w5wK1ZzZ6q6OlfYn/eo+ZZIXFfq8m29fiLogYZ/5ooneL/2hqMsCoKlZyZvK6PicmU2FkzeVWXIzc9q98X04eTNLerLvspvgKnlzqaWZKa/pWu025x5mTh+G5EVlvvxzOt3+cNQFyXfnK16195+IuiwAYiS9vJAp+qdcbjmdKfrUyXRuwXvoD8KanF0OLvg8sZBbKHEYoITPflVH2883VVOz8emvmej9A03VCQ0AwEG5vak/36TB9tlfMNH7xV+MuiwAAFTP7eT90pejLkhRv/QlN3q/3rxlBACgTJ/7uk61fzLqgpTwZbc9/PrP/VNRFwUAgCp9Q2faN6MuR0mf/QOmxfmXoi4KAABVcduafznqcuznm0QvACAJPqvbmr/0uagLsq9fMZ29vxp1SQAAOLg/otPs81GXowxf/jWiFwAQd5/RWfYLUZejLL/4RaIXABBzX41LW7Py2X/ajd4/GnVJAAA4kD8as0FLXvTGpsQAANj+mIqxr0ZdjPJ91m1w/lIzzz4GAKCIX9IxFqeb35ro/TlWswJQU0KIqIuAVvC1Zr1DUQmf+3kdvb/WpKtMA4gpkheN8Md1hv2JqMtRmV/8Z5r5zkoA4orkRSN8I4ZVXseX3SU1vhB1QQAkCcmLBvgTsazypvzoZW4RgNohedEAX1Dx9Y2oi3EAf8gd4PytqAsCIDlIXtTfZ3V8/UrU5TiIPxiT2zwAiA+SF/WnpxR9LepiHMidr7KgBoDaInlRf1+Nc1/pz34pVsteAmh+JC/q7md1rTGu0eUuAhLHXmoATYnkRd3pO83/etTFOLBvxOf2hgDigORF3X0xzo3Njs99Xb2Bb7OUFYCaIHlRb5+Ld2Oz40/qd/CVqMsBIBlIXtSbvj/gL0RdjGr8ApN6AdQOyYt6+yMxb2x2fItFJAHUDsmLevt63BubHX9KRy+VXgA1QPKizn5FZdZvRF2M6riV3t+MuhwAkoDkRZ19JRGjk/6w7ulleDOA6pG8qLPfiO+azZZv6ZWsvhl1OQAkAMmLOtPttLG/t/xv6jm9URcDQAKQvKivTyehmzflLYH5p6MuB4D4I3lRX3o2769GXYzq6Tm9fybqYgCIP5IX9fWr8Z/Nq31evZE/FnUxAMQfyYv6+i0VWJ+OuhjVu/OlpLwTABEjeVFff1blVdSlqIUv0NwMoCZIXtTVHRVXvxV1MWrhT6u38sWoiwEg9khe1NVnYn5vXptubv7ZqIsBIO5IXtSVHpf056IuRk38qaQMFgMQLZIXdfXnE5RWv8QNiwDUAsmLutLJ+5moi1ETejGNfzbqYgCIO5IXdfUNlVZ/Iupi1MbXk7EQJoCIkbyoq7+QpLD6jQRV4AFEh+RFXX0tMdN5U6bpPO43PAQQNZIXdXU9Scn7x9Wb+eeiLgaAmCN5UVcqq74adSlqRN936ReiLgaAmCN5UU/XVFb9haiLUSN3EvVuAESF5EU9/fPJyqpkvRsAESF5UU+fSVZWfS1JbecAokLyop4Slrx/IUnjxQBEheRFPenk/Y2oi1ErJC+AGmih5E3ncrPO/y4tTi1m09bW7MxUdmk5Y+00OTs3M53NTQZ3Wpz3tjh75dyHk3NZx9KCt28mN5edmskuzbr/dnY1T5vVDyfla6Tns9kJtXVi2dll3i/RZG7eKeLcsv/yMaaT95ejLkatkLwAaqCFkjc3NZXNLE5py/5GbWbC32nG3WbCc8nsND3rP0s9mJwzf5rSz0+lzZOn5nWYO49Mqmb1w7TzGpPT7nbvCFk3+2enzYstpOKP5AWAsBZLXifmslmVa7pGKYN4Jptd9ILO2WnR+dfivArQBW8npwqsnrdkDqWTV26bmV+SeyyqDQtyp8Ul9fQZlaWFk1flrfMP9VNgcV6m7aLafUm9mC7kcpnvrImRvAAQ1lrJq+Ntctl5MCc3zZrAkxXNmcBOqQmTprNmb5mS0xmzl/zvpElnWU1Woez8d3rCPCsnHxRM3pmpmYXUZEalunq1BacA8+4R1QFU3Tn+Dc4JS97fIHkBVK/FkndGP3QiMCv/O2Nqmio6F8xOetOyG30zOhPdnXL2IZfd48icXpTNxTJvM97fpuV/Cybv1LQO1VnvUU4/c84kdyqTDb1YLCUsedW7+UbUpQAQcy2WvHP+w5SOQLd7VkbevPsX08irH9o7LblpmrL+PWFvyHop7dWHCyfvUnj/TDY7N6n2Nr3Ly6EXi6VPJyp5fzFZc6QARKSFkjftddyq3tiUrnGav87qTTmrjVdXOhe8mrI+hH3IhalQ9E57L6Eakp2nF0led5MVtN4LmJef8OvP8XUtUcmra/C/FXUxAMRciyVvxn+YUjE7k3PN+clrnjCn2pJzXouyrsfafa9qFPT0/LIXvlbMusEdSt5cys7vjL2/KZgpUS78xzi6nKjk/aPq3fxq1MUAEHOtlbxZ/6FsQfanBGmpYPLqzF2ykjcVDsMJdw7RjJ6zO2Ensw7uksmbDh8vFypR7JM3WT2jf069m29GXQwAMdfSyZsN5dyErgabJ+jkzZZK3lRqwcT3fCrUGp0rkbxuI/dEiyRvUnpGf129m89EXQwAMde6yZsKNiS78uu8udLJm0plFuZUzXcu1Ho8rwd0WZsWveTNFjnebKgjOf7+bJLqvN9Wyfu5qIsBIOZaPXkXQzuF+nmX7JlD+SOsPDIxZSdyyX7ezFS4tVlmcV4/b9SfU239VoJmwH5OvZdvR10MAHEn3m7h5F3IHz2cs+YQ6SqqNTCrRJV0TgfsorXw1LR+7E9Tms1P3jlvflFqObcwqZqfJ1JJ8i84WfUv/ktRl6I2Pp+s2z8AaJS+dulkm+HUeb3HR9Tfoi5h3aT9Gq6bfZPWpJ4JPUA558+1zehZSBlrp/lg83RmIWdy050fNOe/hgnRRW8W8Xx+8s563cru9N8Zb+9UJpeEDP6X8+q8h5yT7Ig+4851hpzzz8SOqEue78+o9/Lnoy4GgBjoaG93LmbOZe2YKNdAZ+fxtrbD7e19URe+hqzAMw/nvDslZKZ1Kub8Gbpz7kCoOW+hK29A1GQ6nXb/7Ybyss5ZP8vlUpMqpedNGE9M5yevTNpl82pT7iJYbuAu5vdCx9ANlVb/ijwHj3Z2DpR9CirOSdtMp+EX1Xv5laiLAaB5dTg12+OdnfmXs5VVbW3dd9/dlr/3KXnxO9Is175qFEhetUqybOSdNesnO8k7rTd5tV+50+JCJjW5PG2y0PQGy4Wcl5wMnpDrPpuYnnLqqpn0oknpWT3pSO4yk5+86lXSmdn5KX/h5ymn+j0pt0zHfiGNQ+3/6vXr/9q//m/8m/ln4P31IgqeiMec6vDhiOvB37rOACsARXS0O7WLQOXCuZI5V7SNjY3Nd8rh7Phgff3h6upWoP5xru1krAO4QPKqGxWYm/KZeyFkvWm+blXX2mnRu5egev6Ed0tAU1POWDOV3O5db5/ZbH7yWnOK3ZrxTOiI8aROwmOBc9CJ2u1yT0FzHu7IH4VbgQR2Ajiis1Cvo/HFqD9aAM2l40jbuQG7ZrG+/mBjt/xLXQGbG9tOBvvXvlOdRyO78lWpUPKmJk1SZv3785r78c6bKueEuauv6dX1RkBn5qaDz/dv5rtoNkzqZ8/MyobnXCo8gNlM4c25r5YxWTwTz/vz9rUfPu63tDxaXXPytoK4LRbCO04Er0R7Fv4662gACGg/fLTTj9yHTgW32otd0J6TwPdX/Stf25EmHAFTWkZ3zoYeOo9zudysWXnKnb2bXs4t2E29k85Oy2nrn/6hZnNL2dyyXT11npxL24tMyidP6qdNhl698P7OhuUYVnidX35ePVedhFUnbt4PwQfra14AHzvX1sj41XOKrv9s1J8ygGZw6OTxAa+G4VQwan21s+1u7DxcteI3nrXfEnKJGNYUgfa2c8e8zN3Z2KvnWbi3sbO26sXv4QYNx6exGYDS197WeUpfgbbWduqaucH8Xb//yL3wHT98KOpPoZZI3sr1HTHtLSur6w+q692ogFP/NdXfhvwG/CqNzQCc691A40PXt+fEr77wnTqXnPQleSvjn4WNDF3f7rZpgxk4eqQO7++bXzaPPs3IZqDVtbcNmEpGfRv29r/wbZn0jV3HbyEkbwW8s/B+FD/9fN5vwM6a/wT89s993n30BRW8X4j6MwcQjY7D506517uaj2A5iL0HbvoeO16PWkdjLZC85ek72Vxn4ebOff0T8HgtG54/77Uvu5N5WUYDaEWH3Ma91ea43hlO+uqO36at+j5f3m5pkrcMHYeb8izcWN+q8UmoJhJ94Y7z6De5WwLQoo4cV9WMRw8fRH2NK2R3W7f5DTRf+LY/8+xvl7dnJp2O4XSehjp0VA1ifrT2IMp+jiL2ttdqeBK6Fd2f/2zqc19ifBXQitzYXd2JYBxL2TZ01XegrYnC9/mPvusU6e2oi3Ewj8+/95Goy2DraFOxu/WwqSq7hU/C6sP3Kzp5r//al3WV90ufjfrzB9BA7Tp27283YTUjZHNnq4lqvhdeeFaW5jvPvR91SQ7msVP47z73saiLofXpRuatpv7xp09CN3xPVtfn+203ea9/6d9S//nNqL8BAA3ToZv34hC72q4O384qr3tVu/jSizp2m6raWJkPXr3kvIVnn4n+7o1HzsUkdt2TUIdvNaP+Pn896EtMKQJaRN/JgXjFrnvdW5fXvSfHIwyM91VmxTp2lYsvqN8Pz370QoSF6Dh6So0wiEnsapsPZZ/vsQN3ffy6Hbv/NlVeoFUcOv4kTvWM4HVPjXU5djiSiu+FZ2Tn7qXYx677bl54KsP3xZcuRvP6J9UaVWuRTto9mAdqrtG5A/0A/Fawxvvv/LtUeYFWoC54K2tNPJhlH9urquLb8BWuPnhVBdULCVpW+nn1U0J84uWGv6c+NahqK2aNLp69nUcH/AH4lVBj87/35YoPASBm+tpk+95qXC94rl3V4NfZyCU2nv/wu85Lnv+wzBm88dH+4XlZj/9eQ99Yx3FV3Y3vrz/Hhqz4PjlaaaPzt0PJe91bzwpAMqkLXpyruz5V8T3WqNFWL6tO0U++HPUXWB/vvyf7rl9s2Ltrl6OqHq3H+9ffO3LYgfwBeLyi7A2Pr2I+L5Bw7ceTccFzbazJZf3a6p+9F1St8PwzUY5FqrM+1eXbmBp9e6dqZo769KmJvW3Z6FxJx8evF0hevZ4VgARSF7xHybjguVSj85M6Z+/3Ze/upVeTMaiqhHZV8X3tg3q/jDwNV2M4qqoYlb2d5Q62+tb1gn6exTSAJErcBU/bW69z9r6s64IJru76+l54t951+0Sehhur5bc5f6Vw8l7/NcZZAYmj+neTdsHTVPbWqc354jOymfnpC1F/fY2jZyu/WqeKb8e5hJ6G5Wfvt4sk7/VvRP3VA6itvuTmrqSz92TNPzbd/PpqTBeIPKiLquL7bh1+bST6NNyQbc77//77fJHc/RKDrIBk6Wt7IsRWQi94msregdoubPXBx51L6Sut0cwc8lj2bH+n1utrHE74aSj7e/f9/ffrhYP3F74V9XcOoKZOHkvauKpC9uQ453O1u5vCC99VFb8ErZlRkQsfvlLjnx3tzmm4kvDTUP7+Kz3U6nMFc/frTOgFkqWj07ngJWYeUSmbq3KoVW0+NZW7dR/l29QuvnReiEuv1WiWUZ/s4E3+aah+/x0t8XPtm4WC9w8yrhlIlja5UFAcV2c+iAePatPkrHM3cWtVVezlt+XnUItu7pNPhFhtidNQ/v47VnxptQLjq779K1F/zwBqSrbwPUpwz1qe9X2qHOWQuXvpPXJXevyavBvtD/L/8NFKbu2r2l0eRH1uNMrOihDnipyDv5IfvF9hDQ0gWY7KFr6oL0SNpaoc1VR7f0e2sX6vFYdVFdb+2iUhvhvu7774w79YfvQecSq8a4lvaPbt3hfiVOFz8Avh3P3lT0f9BQOoqUMDrdLCFyCrHEcP+JH1/c53hHjlRxHdM69JXfjRK3J1jcCH8j0hflxm9Moe3pZqd3E8WCnc9BIeX/V1phIBCdPWehVebdep9g4c5AaCfXJM0fkPyd2wvhfOy4HO/gfzvLx7xL//l8p5ruzwuN9CFd6S52BofBVTiYCEkTWNrSTckeggdoR4Uvm6Gip3X2rVaUT7kIOt/OyVvb9CvFvGb5TDrdTDu+85GBhf9fU/GfWXCqC2Djk1jYdRX3yis7klxPHKMlRW6777O1F/b03sB372vi+0Z/eLXrlo1VbrdXjoc/BRXq9HYHwVU4mApDnZqjUNQ86rHKhgWQ0ZK+fJ3dK87H3bTV7xl0tHrxxpsBb1qRDdOXjfOQcDP/+s8VVMJQIS53gLtzQbsrWv3M7ex0+FuPQh7cz70tn7HwjPXyn1oR16kvhFq0pbF+KYdQ5a46u+QoUXSBjZxdtKkziK2FwRoqzO3u/L9ZmZR1Qemb3/oZ+84tXiu550grfFf/9trNg//7zxVV9lKhGQNH0DLTqmOWxvS4j9F5N8/lXWq6rID/6qEOVE78nW7eL1BX7+fZupREBSHTolREs38flkR9vx0p/Whfec8Hj7cdRfWpxcPB9IXvHXCu/WJsQqDS/q558bve74ql9mKhGQOE7wtnoTn2WtdPRe/FCuz/SDsj9cOD4UIX+90F7HW3lslc2P3i8wlQhIqEP0rQWUit4+eSO883W4AXyiXfhhOHlFgTHhBK/HRK8aX/WHGVkFJA/BG/awaPR+IBdoZsGqSr0nxP7Re5Tgtayp6P3m9etfYyoRkEAdNDXn2S4cvReeOonxHgOaK9UuCgk1HJwkeANU9H6bqURAIvUNELz5HhYa4fzMJSF+uxY3nm01Hy+YvD/+G/Y+BG/I3pZ48h99jalEQBIRvIWt5c3rffyuEOdfjvr7iqPHorAfWjcuOiTEVtTfeZNxovc/Psg9PAA0veNCtNjN2MrkRK99t9SLf9OJCjp4D+RpkeQV/u16+06JLaYTheythBaSBJAMh5nHW8yWeOKv4fzCK0K83V7FB93K+h6/9LcGCkbv3zYf6YBYafkFNPJtruw3tRxADLXTuVaUVeN4/20amqv2/ss/GnglHL1/Rw9XO0rLS0HbQhyO+nsDUGN9T+hcK27TvWHbxQ+5NUKttH/woxcDy1n9J7IB/4gQO1F/281pTQi6eoGEOSdW6Fwrbkd19b7sJMXHWaK5hi48fubV37ait++UWI36u25WW2Ig6q8LQE0dFqKl78e7r1Vx7O/+p0Kc/yDqbyqBvM7fv9zHD8DiNsu5gQeA+Oh4Ih5GfWFpbrsr4q/8Z6/Q0Fw/77/8o6d/lR+AJazT3gwkyjnxiKpGaQ+E+M//i6i/p6Q7Ju5H/T2XYXNjYyOS/7tsic6ovyEANdNOVWN/q3Sz1dthIeIwoWhVRDT+ekOII1F/RwBqZaD5hrXsrktrq8ra+vp25JfkzbylrFBbfU/EetTfcp51eQIGczay5H1nTRyL+ksCUCMnhWi6VSM38pZaeLQWcSG57NVZWxMOr9pbkedecKZ7dMm7y68/IDGONeEaGvnJKy+AB7wwb66u1mB5LucizGWvjpwqb/NN5d3RZ17gxNteX1+vdROMc76XU99/yK8/ICGONGPvmkzelVWPG70HbBTfLu+yth8qvXV1uAmrvO880ide3X8SrJd3ilLpBZKiswmrvCp5rZzd296q4gr4sDbJy2Wvro41YS+vPA3XZFdHvV/ofpmn6BrDm4FEONSEvbx5yevYVdWPAx1stTbJy2Wvno6E2nSbgkzdzbUG9OuulHmKOr/+Oqr/rAFE7ejBFmze2NjIb6PeLbjVqbI62wtvLXZFy09eObg41C4uX66cXw0i77K2WaSgpW1y2auf4xXN5d19sL6+nTerdmPH2VrgjNh09n6Ql+sbssP2Qam431PV3Q1R+m4iu+sP7NPYKcROXhl2N5zXyt/8zt6Oeu6uKPfH4ZZeQRxAvB2rqAlXX4Q2VvOHPO2tuxsfre9Zezu11Af6D6sP7YvczuqK23frX47W/bgtkLyqz827xO2tuS+3shZ6OetfW+7GQC+x98ytituuH3G/mHrpe1LWnPJV9RVvmu/eHji3/siMgve2yhNq29t7y862B2Zvcd8/LUWodivHVz3UJ95esAwb5vC6Xiy8s289/7R+Z++hea2VQNE23lF/sE7R/dN3h8EGQAJU2MinAmzbu1L49zDf3BL5W9V1pdDeu6v+3n7y75O8q9alaeOR//xHG/bLBS6j7+Qn78aKv+V+he2b66ymUS8nxUo534A8BzY3/a/QW/R0zz6jHnrfl3PG7Pp7ezXXvTVr7xUvbMPJ+0i3sqwHRxgEkndDp6o539b9o3rRa5+r3o9V9Vy9d0XJu8sSkkACHK1swT4ZYA9UigavZdvCZq468rG6TLrXni23hde9dD5y672mBGUk77a/pzzeViC7y0neh4GCblXWxU0vW90cL2+cnzwHHqyoce/6u3fPKDdeV9xh8Kt73mnyUO635Z5p7mvs6eeuPryvT0xT2w4lrzzRt/TXbo+xCiSvO+3IffK2KsNW4P8ED/S/7j9ctX9+rrt7y+eurj5S/28oa/LbKvdNAOJvoLLxwvIKsSK2VN/Uln/l0wsO7OyZ2sSKfyVbEY8eODtt3LeufPIatKJ62NTwFTtPSyTvindd3FWXMPV4Q5VCX822CiWvPpZXVxbmpXW1u8I+7keMbq6TY6KsKdfqzHFrqTKBzRm15p1dum153TuhzA+zTet0Xfd/rqmz2MRqKHnvm1PzfmB7IHmdp6/p4QrWb7m9HesH5SM/hbeDRfOfu15Wfdd9IsP8gLjrq3Bkc6DF7FHwEudeOlXj2ra/t/ntv+Yl8obdGGdN2pCjUMxB8pN3x6/Srvl1B11/0aVY2T9579uVkRVR6aDVNXE86m8smTrKnFSuYtXc3mPbO6N27faXnRVzRunkdU8pVS1Wcat+J5qgV+ePOesC90KQB9VTjLeFPcYqkLz+/3/sGq3+k/fcR2afbREsmqlsV5C8ztkc9ZcFoEpHyuteC8SZt+DBurkgBS5l6l9b/sXIyzYvkR8Ju9/skShww4a85N3bXvGqEbtWM6N9gRT7Ju+uCHTACVHhXOZtxrfUx8kyp8yuCjs0V0y8rQW+yXWzj4q3h/6X58beeqCxw0/DkHX/oN4LmTJs5B9eBM7KLftk96vzW4GirdkvVe7ENyHao/62AFSnrcJ1oQLXGi8ed4I5uW4uTSJwUVtzo3ND2Ncx1fOa19ccSt7NtRXrwha8cvpBvn/yPgxm7aqocP2uTSoc9dFW5nCD1cAZtWqfaH7bzZ45o9YD23fNv1YDv/z2gk8Onle7/qm7k/eq64ETOdh58bDwye79P2U9kNOVJO8qPR5A3B2vcI2JQCV2w4Rb6MLhRV0gp1XlYtX9r3Wd3SxU5wisHukNTt32L31W7/RD8yr7J681SMuUu7L7I1LhqI9zZZ6Hq4FzZ9X9/nb9oQXedvP9WtvNtDQR/MEVOimMB9aPv8A5Gkhe/8wVgbPSPHsn+Ftv05QoWLRKkvc+Q6yAuOuscEHGwC/4PRNuq8EE81pxgyNWNtxKQfgyEwxMf98wb/ZHqH/WJHoZybsVrN5sV3DBMwfgDqn10FneAKvAzDL/X+rM2vBtuWepNWTP7L7hLsliHfNh4bMgEMhb1ikXSF4/VSs72dcDPyEqSV6GWAGxV+kQo2Alwk7eEC8K/ePvurvfL3AxyluNKC9217YD7XobwX0LJK830tlK3gJ5XlnyMqejPso9D4O/8Uzy7hT4Xs2Q4VDy7lhNNV6UFToL/OED77wTrLoGktd/YvCsNL9KV0Xhkz343EqS9wHJC8TdAZJ3NfAvUSTQCiTvOyUuRuFSyKvjo3XX/cBFMK+SXCR5vZHOfvLuVp286yRvXZR7HgbXUDZn0nqB79Ukr9XU61Zuw6P31KzfvFd6aJ+B6w+tn4dlJa99stvVebtoB0veDZZzAeKu0mXqa5W8hS5GwcuL/UKPAk1zhZL3Uf72Aq3NhdqwKxvcTPLWR7n3wlgXlSbvevDJRZI3/yxYyT/kjv+qkSYvo/yAmKv07j/Fk3dnI2Cz+MXoYZl13tXAv6xGRmvQaWDffZNXNQFuFCho2dbFuai/skQ6ePLuvJPXqhzYO9TavJ0/Hqtg7G3nB68ZTRVcw6rYaeyefoX6eXffIXmBVtZRu+TdKLy3tV2ObKlkhJX1Qg8D7c2rIm+Rv/zk3SuQvEULWjaGt9RF38GTt0B/bmDv/BFW4RPuYaHYk/turVr8YX1l1XnNCVxqhBXJC7SoqpP3kbkWrRfe26qqmovRRrBfba+M5N3zl9F4R3f2WUOpvWGigQNtFEreyletCqHOWx/VJe9GqBZr721N/DYDlLfEvrOKgou1SA+9NukSyesfxj7Z14LHXcl/LskLtJQD9PMGG3S92xCsFdnb375jXYys6+S2KFBhCffFPbBDPNQx542VDqw0tFMoeVcruMIVRD9vfZR7HhZO3mKLYQSXq9gz/ypjJY01EV7eRWXxnv2qBZI3OE/IrKRhneyBlTRIXqBFHWBsc4Hk3QjWEB7s7Pp7+5cdbwH64HqR9wtddfJWj1y12puDVzP/yhlohX4USF63jr0dvA4+2K5oBat3SN56Kfc89BaG9E6KDfPA/y22u+reg966M8I7/q2H1FlQevVI1cYSWmNlyxyrRPIGl5h8kH+yB1aPDCZv/vDqwjbo8ADirjbJG7zyyXsAPtr1LkY71mZ/EXmvdrApglOGzOUllLxqvXtzcQpUWna8o9lVbz3F0zvWinWTh/xLcfmYz1sfpypI3uBKGup53sKQkroHwkOzt7dOt3VrBHst5YJ3TCiUxt62UslrTr8H3k88FfN74WOEnrtT8P8Ehe2QvEDcHWQNq8C/3NvNW1edPX8OkB4Suh3evGfd3k3l8bp/WS16l8AdawTLhtWnZrUoqhrthr+3W1S1ZtG6f+kzj+2XLhdrWNVHuedhkeR9x7rZ5O6aF2N6tpEbvWt+nXTbOi0L3iXQy27LnhkkUCp53dN60zrDH/nRa71u8Ln2Kbr/R8D9soCYO8i6zYF/ufGoLmuP1rYfqBuRixUdher64+yz/mB7zbpNqb4iyr3X1ZDRFevWasXvz6sukdZiBmLr4YNt/XKmpqFamNfWd9acrTv+3XrVa6yurpqjOM/c1gXyDlj++2fd5no4XmZja7HkVU0i4tH9df21WvF2X945a219NdD+ok9SZ2+9+YH37erjbeaNrzLn+No7JZP3oTzR1gP/H9BDFJxTbn1VFW2r0BvxZg+X8RHQ7ALE3kHuVRT4l3l6YDEDk7Bq5fqtvM3Oj397nYLVXesYxZNXXQ7N9XnNfjnvCvbA37bmLZuve5JNwfcCz9yqMHi5V1GdlHseFkved/buW1/ritUesr7pn2v+jSzts2DLOy1N8q6JQrOUNt1Kc4nktc5L/2TffGS92MOCb0R1lJSZvDS7ALF3kPvzBv7lXaA2/OvLmskzFX57q3nXIudq5OdxcJxJ8eTVVyfTHehn9yN7aq/ZuvaOlbzmOhvaR6w8rDB4uT9vvbSXeR4WTd533tkx3+vK2m5gb5N8W/bUoW3vdLVOAvcEC95u2ucOEiiSvLqNxUTofavK7P8q8M/V8Gjmh+Um754QHVF/WwCq01f41qRFyTEogX/Zabq9vrq6ur7jX8nc8Nt0tt/fCb3O5gNn68OdDSv8dv3j7RVYXUpu2/AvaBs7D51X2w6OzNlddzaurcu9Nq2iPli/f3/dG2G6se3sdH+9vLvjBKzRx1YnZQ712w2cAptmRJQ5QeQSy9YWE2+bzuYH4V9Zau+NQJuyO8JqL3iWh1/ce9VgYdyTfW9bHjb8VOdsX9/ZyD9WcI+NMoba8+MPSICBCodYVWS1rF/xMfKIu5LXSWd186wLq2SabNUadLLz4w9IgKOhBQPieDFqmF1a+uqlrdL5XeVIYvLy4w9IgCOVrmLVhBejhlnnBm31cqjAYOIafF+JS95NfvwBSXCsjs3NSUveR+Jw1F9XYtXjPExg8q6xjgaQBEfr0czX0ItRw1DfqKN6nIcJTN4VGpuBJDhU4ejm5rsYNQz1jTrqqPIuUoUkL3m3heiL+psCUAOdBW8zFJ+LUcPsCuobddRZ+7F+yUveLUY2A8lwpB5jWxp4MWqYNWZS1lN77c/D7dXV1QPM2j6Yh+76pPW0QX8HkBTH6lfpTZI9utjqa4DzcD+r4lzU3xKA2jhZx57eBKHKW2ech/t5wA07gOQYqPC2CS1pk17eeuvkPCztEVVeIDna/fukoZhVVtGoN87D0nbo5QWS5FzF96ltOQ+E+CDqrynxOA9L2V3hzrxAknQ8KfPG5C3Luer9l//V0wtRf1FJduGDHz39rzkPi1sVx5jLCyTJYdr5SnOuev/NfysuPRP1F5VM7S//aOAVIf67j3EeFrfD8Cogac6JFdr5ilNXvcfvCvH2+1F/Uwnjhq704/flICvOw8I2V8TRqL8sALXV96SOyzfH3qbQV70PLwnx4cWov6ukeP/ln5jQVX6QUuch45sL2duirRlInnbBOgbF7K2IAX3Ve/5tIb7LSKuqvf/S3xoQIS+ovxwRdPUWcl88ORT1twag5g4L0bCF9mJmSzzxZnP8904tjZFWVSgUutLvuH9v4zwsYIfZ5EAyHa/DzWISYS0wtOXi3xTi0kej/rJi6qXfFUX8nrfPObHCUlYh24I7JQDJ1DfAJa+QtXB1Q420+ljUX1csPS4WvH/T34fzMM+GYBkXIKm45BXyUOStX9DHSKuD+njh4H3V3qfvmFip192zYmnTG2cAIHk6ThG9YYXb+drfFuL8y1F/XzHUvn/wplKHnogt5hZ5CF4g2ZxLHtEb8LBYB5scafXbTO6t2HsFgvevhHeS0ct56HKC9xTDmoEkI3qD1oqPbLn4oZMZrzHKuUIXfpgXvH85v0LHeegheIHkO0SDs2Wt5JDS9o8LcekZ2gEr82E4eJ8t1GFO9Lo2CF6gBTjRy3xKbe/+fnM5PvguC2tUqu98GcGro5dJbnKYwQB3BgSSr29AiPWoLzjNYG9L7H9XtmcuCfE2C9lX4Pn/IRC8f6dYe/2hAX4CvrMuGFwFtIa+c0KsMbR0c6WsZYMuyCFD32OGUZnkx/VjK3j/dvFfLfInYGsvJLm3JsQ5ghdoEccFQ0t3RLkL5b7/thCvvBD1dxYLF38kmwj+Rz94/2KpBUn6nPNwtYV/Au5usXIV0EpOCrHS0vdJlbWN8vvXXj4vxLs/iPpLa3oXP3zFyd3H1nIaf3GflcDaRAuPs3pQXqMLgMQ4dKylW/o2ZW2jgmY+tajV08dRf2tN7cKPZO6q3ydmOY0f/439nnTkiRA7UZ8N0VgX4hiDmoHWIjt7W7bFWbY0V1jbuPA9J0ne/n7UX1vTev57l0zuOl6z7wtYUsdAa7Y4y99+nXTxAi2nTbToGOfdVSEGKq9tPC/j5LXno/7amlL7q85n89SffqWX0/idcp7ad7QVez52VsoYVw8ggeS0jtXWW7leXvSOHugDI3sLe199LoG2+A/LDV5H+ykh7rdUtVf+9qOlGWhVR1uv2rspL3oHnp/7fbmqFVOMAh6/LW+JEPpIL54Xf73sI8iej1aq9qrffrQ0Ay2r/ZgQj1ppJaF1UeVFT+bMJW4g6PmB/Dzey28HeOGvVXKUk09ap/lF9vAe/LcfgCSQvb1rLXLNe+fBIyEGqr3oPX4qxCtkr/LCd+XvkBrcVUJVe9dboMl572G1v/0AJEBHZ4tc81RD85NaDGspVs9rMRdf+o4Q52v1G0Q1vyS+yVk2NB9gdB+AxDkpr3mJX0FXrp0hztVocfofqL7N70f9zUXp/VcvCfGdl2pXe+trk03OiZ7otrHl/PY7HPU3B6ApqGveVqK7e/fWV2rQ0GxR44qetuptjPpeeCrffo2X1Ow4nuiuj41VGpoBWOQKumI1sdmrcvdUjVfq+76cS/NuK67n/Px7TnX30qvv1/7I7Z2Jzd5d2ebSyQ0BAVg6kpu9Onfbal/ZUPN7zz/TYoOtXn5RvesaDKsq5MixRGavzl1GNAMIUfWN5GWvyt0ndchd6YJcM/HS91pnsNWFD+V975++XMeXOJm87N2UuctMIgCFqOxN1lir3Yd1zF1J3Z8ntIBTYn0gF4m89Fq9IyRh2av6d49xVyIARbTLNudHiZljtCHrGvVoZ7ZdfOFd1eGb9KEzzz8jq7vnX2pE47rK3tVEzDHa3nLeyv9EfRdACaq/d2UtCZM7tnVdowGJ+FjWBV/5MMGNzn0vyN5d8WLDBnMfUe0vOzH/Dbi3/kh+av/z34v6+wPQ5PraTskKx3a8L3qqmVl0HmnQh3bhR7JCWI/hvs1Azd0V559p6E+L9tj/BlRNLuJ4x9H/5X+N+hsE0PxOdsb8oqequ0+ON3SxoJcH5B18X0jcSGfdynzpucb/qug4Kn8DbsXzN+DejqzuHpNdHRcviVad+A2gEoeOP5EXvZ04DnPZXJPV3WOHG97x2v7e07d/++8//X7UX14t/d2nT95+++1P1nMwcynub8DY9fg+uC+sJpdXxatRf48AYqHvpKzDifsxq3Hsqp61J8cZ0pIQh47+b7LH92GMGmDcn35HvWUz3heiTtOfASROx9Fj8Qrf3Z0tVdVoxKgqNMrA//5/iPiE7+bDR6p3NzDC4F3xYdSfIoD4aD9+Ki7hu6ljd+Bw0lboy05N5Q7wnHTFL5SempqK+s3maxf/Z1/f4YFYhK8bu+fCP/1+R5yP+mMEECtHdPiuNnWf74a+5A20JS12Uy2fvM+IF+V/Okz4Nmuf794D1chc8Kdf3yURVU85gLhyw7dJr3q72/dXklnb1SpJ3ol0xjyn/OTNpPW+zZm8zwpzVwo3fFfubzfdj8DNHTWkSpwrcg6+p38+AEAlDh1VVz2n6ttUDX57D3Rlt+glLwEqSV4TuBNpN4LLMesGrpPAlVeU6609MDqp4+Q54f4IbJr+j73tNXUOnjpXfHyB8y4SvM4KgPrpOHzulK5zNEf6OqmrenbFseONWjAjEhUk78RBGplTS81Y1TWeyastHtED/8RWE6Svdw4OHC09mv4pY6wAHFR7m676rqyub0R52dvddq94pxJc2XVVkLzLB0rexWZO3mfFS/kbzY9AJ32ja3nedOu6zi+/k/uegy8wxgpAFfqOuA3PYmttJ4KbCu5trOt+XZm6DV2lqhi3lXZyeT63POlvnljIZXMLk8Gd0rn5nB2O6QVnw2zaPpRpJp5YnltayASSN5POzS3N2s+fXMjlcgv6Ken0/NTUcjo96bU2T6p/pNJLzmv4rc+Ty7k5r6jOK045eS33t1qbM+ll5zkLE+YZ7nFygeM0QnvRqbCHTPqu3G/4r8DdB+urFZ6D573uagA4kL72ts5TjY/fXSd0dTXDqWc0R+pKamTS7MyUND3rbsxkp7TFSWsnvWnaSzSz03TaP5R+mJnTf8lm/OTNmb0XzPPdnaay8ojuY7m3O8IqJ/+xFChHKjNv9pvLuK+opK0RVgvT7sb5jHnhbGpJb5yZSDXQc+LjJf566PBx3fIsHt1ff9CQ2u+mF7pioIy6rudD8bSRnxuAhDp08rhb+RWPVte365q/uxs7D1fdFzvV2XakqZbKkIk1Me0nmNrm/dtNVbnTrLdJ57MOOB3Zy96h1O6ZRfOnxUU3efUmL1zl86e8589kiiWvCeepmZR/FF26+VTh5F3yj6t/JMjk9QvfyFrv+UKNzQF9R7xfgWJ1bX2jbvnr/O5b887Bc23tlZ2DzwvBumoAaqP98NFO92okVlYfrm/UOID3NrbX75vrnQrd5uvWTasoW55ILcjqZFZtk7HlbMnkTFTpnXITqclZLwVnZPXV+WNapuGkOZRKXrnTnGw2XvSCVkboYjqj81pF97zc4ITpgrPTktzgTSbyk3d6amYhk1meMQdedh4sOQVTWxbMa6bsB+kpc9xp9+2o40wvTGZmF81rN8bHylx3scOJ32PmLNm6v75TywDe3NhZX90yRz/mhO5BzsEXxXuN+9wAJJ9z3Ttnqr8ygFfX1x9UeenbdBL3oX+5czL36OEKaxkNk/brrEtueM16ATUxo/+mdtKbZt3My3ntzrIiOqcemH7eRV0jdeuoOefBpMxD9TfZEC0DMSPr2vpFpvURCySvqg2nVIV4zj2wjv2Uec285M2aF5Jjpb3juEVdNL8tGuK5SubB9smfgae8U+bR6v1155fggc/D3Y2NdedX34p3wGOdbScPXm/9gbjUpOcvgBjraG872ukHsGz8kxnsXPw2ypuF5Oz4YN3JWytw5SrM55zrXVNfs1R1Vj+cdcNwxq2EplQlc8bdadHd5GbetBt97vOswVkq8ib8P+VSqsrrhqgK4Ql1SNNjPBEI3EDyuuXImuprbm7BO3DWFD9lPbBeW9aq593j6B8CshjTjftoDzIuqf1k2zkrgL3zcMc5v0q3yOzJPXbyT8FTncfbjlTdVswYKwB10+Fc+Y53doo8Tl1YWVv33Xe35e99qrOzzbncNXXkujJ+Lk3qSmJmyp/eM+HFpFsvVjVjmXlWwtlPkBb8fMu4yZv1w1wGe06/2HRgvFOh5HVzNpe3QJXduGxvWPZqxd7jnN/GvNzIha4+JsSB73d8qP2wcx4OiEIerYY8Krhbp5O4h9trNZLvGcZYAai7jvb2tra2zk6/A25fA/Ja51zsYhG4PqvvUyeozLCFtMvfZLJV51lgscZpLyKVnNWm646wktVoc0h3uLNsiJ5etrK3UD+v+6cF+9XSs7mcGnql/hFKXvu1/U2mSt7QJSafE5+o/iDOeXi4Tf4YLOdEPObsdrSt7WT7gfpyS7ogxPsN++QAQPbBSSfbCjmi/hZ1CavghFHGfzhrBh37Qsmr0yuQYaHlMuz0c/8UOqRsp3YHVE/PL/i7hpM3G3hNR2Zpxj9K4C/ug3m/EVxtyqjjLIaP0wj1aKDtaPcdsR7X/9feq+LVer8EALQKK4x003AuFJOzOrFMT65Or1yJ5J3PS97J0CHVnyeX3RSdyWXcXfdL3gWTu3K2UsHktYvitoIXSvAGqKaxuQk9FpeS9HYAIErB5E27o6IsBeu8CyWSd6lgnXfOOqRp3k4vLXp14DKSN6P2VTstFE9er0PZ/b2wEE3y1qSxuYm8yxgrAKiRvOQtEE928i4cpJ/XGqEVMrnstmiXkbwL/rCu3FTZ/bzpaJI3aaOBXxDvRl0EAEiIvOSdnMq7dUHaH2bsZlvGan8Oj222xhdbY5tzxQqw5O9TInnlYKs5v8e22AirZX8XWXmfTkWVvAlrbE6lLl5ijBUA1EZe8soqrNdiq6uYaX/qkcxFdz5vzt0Sns+bzp/PO29N9plwF7rwwtqdrVs6ed093NecLDbCasIqi9vfHE3yvpewxmbGWAFAzVgTc/1Fn8zyxrmpaRnCag0rvWnSX8PKrI2RtcYTK150e2tYTfhzlyamp7KT9mSmzIxX550zxyuavG5+z5kCee3gJlRnvMJMui8RTfJ+N2GNzanU98tcDBMAsA+rqdh9mJk2N/VZ9sPLXfdCZqmaZSt30ss0zuWt27zkduvqOwvlzE4qaSfcaJQb9A0Cl9wsnzfHKZq8Zk2MycWpRfdJmanQYlazZsCWnLU0Yz3Z3qn+PpK0xmbHU/FM1EUAgETIT159P8CZef9+BzKxZCer3uQv4Dy1OKduFahruF7yTqqputkZ+Qz3CJNyPtB0dn7aLODs7rOknq9aspfNLN2iyaueMzMvj6uGOS/O6gU55Gt4oarSPqtKOr1gPdmUsDGfavIam+UYq/NRFwEAEqFA8ro3GfLm++jEMnfs86YEmXsJmjvu+iOgzW0HpzM50zXr31nXbaS27huYzVgbSiRvatY9rpPds+7Pgtlw8vrzkf2bC8/4x2lQ8n5XvNywb7BR+i6JD6IuAwAkQS6Xm8x7mJnNZWcWs0uBVRfTufmZeWu9x8zsUnYmu7Rsnj7pP39yeW5xcWkh4zwn560BnZtfnMnO+/OPJuay0049eM4bI53LZudzTpjqw6T9eb+T5uGkU6x5/YLppexSWh8lO5dWL26O67z4TDa3YBUr/2F9fSSR9/Z5jzFWANAoDV11MQmeE5+Mugh18DxjrACgUUjeCn0ngY3NjhfFh1EXAQBaBMlbmWQ2NqdSLzPGCgAahOStTDIbm1NyScxE1uUBoPlMkrwVSWhjcyr1oXgx6iIAQIsgeSuR1MbmVOqCEM9HXQYAaA2Nmo2TDIltbJaLNzPGCgDQdBLb2JxKfcAYKwBA00luY3MqebcdBgAkwHNJXurpGfE06iIAABCU4MbmVOriJdEedRkAALB9IF5JbmNzKvUa9woEADSXV8VrURehnl4Wz0ZdBAAAbJeS3Nis7hVIczMAoIl8KtmNzbJOT3MzAKCJvJrkkc3Sp5jSCwBoJpfEp6IuQt3f4ceiLgIAAManxKWoi1Bvr4rnoi4CAABG4hubaW4GADSV5Dc2y/f4kaiLAACA9n7yG5tlvf69qIsAAIDWEreO/5T4TtRFAABAe9oSt/KhuRkA0CQuipZY4InRzQCAJvFya7TDftAKvdkAgDj4ZItUBr/TAiO4AQBxcD7Zd0vwPJf8WcsAgDhoF+Ji1GVoiI/Q3AwAaAbPiKdRF6FBvtMilXsAQHP7hPho1EVokOfEa1EXAQCAPiHej7oMDfIRcSnZdyEGAMRBK022+f3fvxB1EQAALe858cmoiwAAQAt5VrwUdREAAGghrdwCm0mn0/a/J5x/Z/yHIZP+kyaiLjkAAHGUnpqasv6ZmXb+vawfZ6fy5PRfcs7D6ahLDgBAHIWSd1bm64x+XDx5Z+Tj2aiLDgCIrYlQ22kmvZBbKNCcWriNddLZOxdsso2RUPIuOpXZqSn9ZmZzmpOzM+5D/YcFtVM26qIDAGIrG4iRWVPXm1meDOwm64PTmdBzczOmPpiNZfgGk9f518zS1NRciY9Hb1h2njZZzvEBAMhnR8vEjN26uhzaLdzGmg7sPZ8p8wWrNBGqYWe8oU920dKZ8E6FBkUFk3duampp0tkSeGo4edUOcs/GvFsAQPJY0aL7ObO5hZyuzFq1v0mVrov2E5fklulsbjY3p2J5ur7V3pzsaF2Ynw4ULDM3ravcC95Oc6kFVZyZpfBOM8v+ofRbDiRvZkq2NGfzf3EEktd51/PyeYyxAgAckB8tCzI+TbV2IVjHla2wTn5ZFcdZa9BRanKxUGN0Tcm4nPAat/U2q46+7O00aza5+ZyeDtfLCyfvshpdNeuNsQp/PNq0+lRmGGMFAK1lMrPfBrlt32cpXrRMOKGy6EdrsGNXpu6cXQvOzARruXKuTV1bYJ0XmJmempvVPdHqlVVFfCk3uzxtfgTInZxSLqeXZswmudN0biE9O++FceHknVHxnfHGWIU+Hu9TmbaPAABItqVsdiK1sCQrmPNeRk6qxt6ZedNImpU7Lc87QbK4NBncaTo7l/H30rU2L1rmp4KZ4wTtvHm+qglO2FGcC3f7Zus87CjnVcInp90InTNbMvNu0fydMotu5dXZaXrCvCFdwnQup4tuJ2/a/etccIxVKHmz+q+TjLECgNbgXPfTpjHVVDgXvMbURR2LMkDnzE4T4Z1m3C1eU7GJlsxUuB5njW7Oqgqt3cYa7vVVyTVfx/ee84/vFnnSGgXmFi3nNzLL5vIJvZMp9GJ44LKdvHPu4dPBMVbB5J2cclvcs4yxAoCWIGtcThLk5v2+TtUfm13KqY5WFZUyoeROS37fq0zrmbnlZTU+SSd2XvIuh6q8tgldxVv201bm00Jwp/lQD2mN5fyczenAXAjmZtb9iynWtHqHC1aQLodLaCXvpPfMmcAYq2DyzplPYJYxVgDQErKmGptZMpWvGVOny027WerXdb0W4RlTIZZ9ubrimNfavBRcVSJgzq9kulXmXHj2jd5UxxZY6/Bu5OasaveCDtWc9Say6vOwe2TT4bdobch5qRzM50DyZqa9CvQ0Y6wAoBVkvXqfaWmd9RtTF9xq2JRf78vqbJr1YzKdF48mWrLh5mOfFzjzXnNtLj+nF0pUmmvAj0YTmLIHN+ta9MLYq4rqLtmlUPIGfi5YyTvjDdSeDLyPQPLO+j3dc4yxAoBWYI1imtYdjVmrc9UNYWtB/1mdLPZO0/5UIO+YWfu/BXhNqwte8szn752ue/KaV0x7bysguJObuYEO2XAJ/eSVPxvm/AUj/e7gwMfi5Puiu9NcfWv4AIDmYNVL3URYtIJUN6+mrOBwm4ft1SHyll+ykrfYAKlF7zleG2uBnM5EkLxenVdK7Ze8meLJOx9Kca9qHFjiK7QTY6wAIPGsGHETQQ4xNsnjNphmrTDWUWMHTq7AOsT71Hkn/Ordkon+ufzhVA2v8y7llzjU2rxUbj/vZChT/V8q9scyF9qJMVYAkHhWqOpEyISyYD514ORdKpoksj/VamP1Bm+Fdqt/P28oeXMFk/dAI6xkYqc99ihtK3lld/eSt9PCFGOsACD58pI3XFfLpg6cvMvFxjZnpoOvMWf2DnVzFhjuXEv5yTtbuAzmrU6rmqs9qmqp0Bxks6/VdDxhHcVK3uXgG5xnjBUAJF9e8qYK1DMPmLwTeXW4jI6Z5UJtrBNT4ZFapQZH10J+8mas0WJLi0sTqbyVNGQuWzvNhMtsknd2KrAktb3khpW8M8GFOBamGGMFAIkXTF5ZS8sLk8BOGZ0oi1amFr8B7Uy463ZxOpfR2+f9lliTz9PhOySk87O4poLJO+1uct/YrDuTylo9csYdMebvNOctLJLNLnlldj+DwI8GaxqWn7x5i4dMM8YKABIvmLy5lLeOcGgnEyML3iBgb6eZYrOK7KnBirsqcmjglJnHOhsOWuc4M/W8WVF+nVe3g8/n9ELWy+5OM9Nq04zJSb3T8oJa5SsXPJR7oMlwdT/jj7HykzdvUNkSY6wAIPHyk9fuXJ3LmSWFQ0ORraUOJ/Kap/1oyVo3CdTRKp8cChyvjdVf1UOS9yyo74CjAsmrX9XqfVY7LZhNbnHkvRPcdvLl0KH8QdKhOxz6b9r7eDJ5dfrJer9lAEDk8pNX1ujcu84uuQs3y0j014o0q0fqZJIppIMkl8ulzYGs5tQp92ZGGbkYpWypzkyFbhU/47axqr2zbsSrG+XWd7zRgmkidl5NT96VZrNq/Je7EqbO1IU52XA+57cM59ROi97tnbzWZvdA89lsLvhiaecP+q0tmX0XvE2eubznAQASJj95ddV0eWJieX7Kv43OjNyUXvb6YuUgqflZZ8viVNE7JsjdVIrNzOeWVFSpxZ9DA3qtKbOzau/prLP3lJ3CjZZJ++UztdnJidBOeRsAAChDgeS1hx57y0stmAbWaesGB+4WtypYKHlTE4v+wdz7Cc6El7by21gn7eUbp5dTTYA71gMAaqpQ8qYm3M7ORf82CemMbHB1Usir6aXdTPXudV8weZ3oMtnrtt8uTBW6G6DX1usl/FxzzK8heQEADTGxMJv2QjarG5QnZ0MTfSdm0+XE42Q6nUuX3TabSaeXF8rfvd5IXgBA42XruohjcyN5AQCNR/ICANBI2dA0oFYy6089AgCgQbL1XcURAAAEkLwAADQSyQsAAAAAAAAAAAAASJofiLejLgIAAC3kfSGiLgIAAC2kT4j2qMsAAGgxTweiLkGUnhWPoy4CAKC1dIhXoi5ClJ6KZ6IuAgCgtTwWL0ZdhCj9RPytqIsAAGgtL4lXoy5CtG+/pRvbAQCN91Pxo6iLEKXH4nzURQAAtJYXxctRFyFKfUL0RV0GAEBLGWjxwb3nxftRFwEA0FKE6Ii6CJEaEB9EXQQAQEtp9UWcnmNaEQCgkf6S+AdRFyFaPxU/jboIAIBW8rjVZ9X8jHgt6iIAAFpJiy+kkUp9IH436iIAAFrJ74mPR12EaD0Wz0ZdBABAK/mJ+EnURYjWX2r1IWYAgMb6ScsPMGIpDQBAI31c/EzURYjYP2jxpUQAAI31YssvJPG7JC8AoIFaffFImby/F3URAAAtRLT8ssXPtXxPNwCgkRhf9FPxXNRFAAC0DubUpD5s9VW8AACN9LjVl21mESsAQEMRO86Pj5av9gMAGudnSN7vk7wAgMb5KXfqSQnx/aiLAABoGT9q9WWbUzJ5W31KMwCgcZ6SvKmBll/GCwDQOC+ygJPzGfx+1EUAALSMp7S0pn635W8aAQBonLdJ3tTHxfeiLgIAoGWQvIwyAwA00tstf8MEObOKWyYAAOqr7yc//cn3fu/3P3j8+P8S//fj77dHXZ7odLQ/fvwPxT98/Pjv/eR7H/70pzQAAADq47zI87db7Z5FL+R/BuJTURcKAJBQz+WHzqtRl6nRLv44/0NotV8fAIBG+SA/dF6OukwN92reZ/CJqIsEAEisV8Kh88OoS9R4L+cl70ejLhIAILE+GQ6d56IuUQR+GP4QWnioGQCgzvKGF30k6hJFINzbfT7qAgEAkutCKHS+G3WBovA+9X4AQMM8JXRSqb/KnCIAQKM8Qw9n3ofAnCIAQP20BzLn2aiL0wwfwotRFwcAkGiBZayeibo0EXmWOUUAgEYJDOx9PurSRCQwxLs1W9wBAI1iL2P1NOrCRMUe4s2cIgBAfVnLWL0QdVki84lWH94NAGgcaxmrC1GXJTLWCpLMKQIA1Jffx9nCNwro829YxJwiAEB9XaCxOWXdsIg5RQCAejPLWP2wlWt73kAz5hQBAOrNrOD0WtQFiZRZQZI5RQCAemtnaFHKm9fMnCIAQP19R2XOd6IuRrTamVMEAGiU58gcx7vqU/gg6mIAAFrAp1TmvB91MSKmursvtfIoMwBAo/T9kA7OVOp55hQBABpFrp34YdSFiNyLLT6lGQDQOC8xmyalF/PiUwAANMIFId6NugzRu/hj8WzUZQAAtIhnWbopJVeQbPXx3QCARnlGPB91EZrAy8wpAgA0yMf+n6hL0BT+PnOKAABhHYfb6uH/rctRtSPttQ+0I3Up6f9Xx0/hcPuhqM8dAEDFDh09JmLpXC3HDPedPBf1+zmYY23UqQEgVvpU4HSd6I6X3i5Z7M6ahc6RU87hhnt7on5flRnvHXaKfepk1CcRAKB8MnG6+k+fiaGhXid0atTY2unE7vjZqN/RQYx0O+F7POrTCABQrkOnxHAsA0cZGhanOmrxMRwX4sRI1O/moEbGhTga9YkEAChPxynRFdvEcYwOi84afAxHhRiL+q1UY5xlsgAgLo6L4Vg2NHuGhKi+k7NDiJ6o30h1esWxqE8lAEA5+k7Fu653Rlb3zlX9MbSJwajfRpVOC8HsIgCIg8NiOOrMqNaoEFWPbz4l+qN+G9U6QU8vAMTCubi3sjqGq25uPiREnPu6lX6amwEgFjpj39hci+bm9tg3NtPcDABxIcRQ1JFRtbNVj25uE71Rv4nqdTG6GQDiQIh4j2yWhoSo8lNoE+NRv4nq9Yq2qM8mAMD+hIg6MKpXi+TtjvpNVI/kBYBYIHklkhcA0Cgkr0TyAgAaheSVSF4AQKOQvBLJCwBoFJJXInkBAI1C8kokLwCgUUheieQFADQKySuRvACARiF5JZIXANAoJK9E8gIAGqVWydvd3X3QBaDHDv5UrXmSd6i7+6C3fjp98Ke6SF4AiIVaJa8odNOjkbPdJ3p7e8ZK3w6pt9r7JTVP8naLQjc9Gu3v6e090T1U8vfFkKj2fkkkLwDEQh2T9/S4MAb7S9x4PuHJOzbofQzjJd4nyQsALaJ+yTskbF1u9A7np2yCWpsLJG9v4GNwG5T781OW1mYAaBF1S97RYWfTif6hMyNne2Str0vnS7X120KaOXllvX+w5+zpM6P9J2T0nnW3Vlm/LYTkBYBYqFvyysg54T4e6TLVvbMtlrynZdqOuv8YkymsHnWRvADQsg6QvKOBf43ogUN5ydsrxLDXuSsrwCfcaLJ3Gy0w6uh0aNtoiS5iLZLkHQmVcsh9e8FIlU3u/qHHTQwHdxsZKvBrJLRtZPTMfkheAIiF4sk76MfDkGkmHVK9lsMnxkwaqobkwfFRL3l7zbOcDT3+wc4OjeptSrceVjWqd3ZHWHXL7WfHB4UdVmdPOJnd1X1a7lQ0HOuZvGPWT4pet818pHtYdV33mDQcVR9Lb7+XvEPmWc4G4f9yGBkbGtHbFHdYlTzakDfCSm4f6VYH7DLHH+npcj718TF1XJIXAOKt+JV81LnK9+sL/6CusZ72RwvpduQRM3p5eDQveXtNy6ollLzycMHkHTV7uKHd7x2/1xud1NjkPXPCeR8jXmFkFvYPex+DjsYhs2E8L3mHRH65Q8mrRqIFk/eEedu6Xn26yxsbXeBDJXkBIF5K1KG6zaW/22047pEVr/6hflkPVVXgHlXTG+ofF8N5ydsdrPTqbd2DMp66h9R+zh5dvT128g4OixP9/SpnzAuLwe6h/l7R1VWig7iuyTsy7L4P+UDuNSJro91nz8p6qK4Cy4zsOXvWeXPD4eSVQToYaige6h6Xb6u7Wydvrxju7R21k7dLDPaMjcuPdNy8sBgfO9szLMZLTT0ieQEgFkr18/bquu2oaWseNJXgMTeTTe+tapPVUdPT26vzVlVfu87mH3LIPBgeHrK3dXuzbkZNaA+a2Ujj3vEbnrwqRWV2nnCDdsxUguW4MVlMUxfWA8lUMo72yjA9o5/lBPbpvEP2mgdOnI7Y27wpWKpBYcT9cPXnMixIXgCIvVLJe1rXbd2AsTsZe9QU3DG/E7MrPxnH3Hbp7rOn7XTwk9c0w1rJe8I7Wq/7gu5zB6NLXlmz71KjsnULgN/jPDqupuAOepX7s/nJOKJbigd7+ocCBfaS1zQf28k76h1tSL/guP+RkrwAEHMlxzbLuu1Iv6njjQovArxIMjnQXyAZ/cWbBsetQUp+nTe4rdvP4h79x26/V7M/wuSV4dk94lX4T8huZ/vPVtGG85NxxHTayob5kQLJ25+XvIP+gfv1lrHixyd5ASBmSs8qclKjd9ibkKr6G0fsS70XWEMFk3HshBe+vafzkveEfxiTvKe9xBf61U3Sj0aYvOrFT3jllT8ChoMVWO8z7C2UjKd7vJFpw/35yTual7zmTQ+qz3fU/1zU90HyAkC8lU7ekcAcH91+3NVz1rvUe38aKZaMI0Pd48P+8pF28nb7h3GTtysYZvZMoiiTVw+xNrOTdfvx8In+0/nJ21MsGUfHurv85SMDyeu/CZO8wc/XPn43yQsAsbfPShpnhT2PxbQfD+ohQ8NeU2npZDwz1GX6cEsnrz1/OD95o5lVpHTZL+/dCeLEWTeWTbt56WQc6TZ9uPskr9U0n5+8zCoCgJjbJ3lPhAYVj467c1fHdEiUl7y6s7Pa5I1kJQ39rkVwaNPImDvDtksvjFFe8vorWlWTvKykAQAxVzp5z+oqbmD9xlHVbirH+VrJeLp08qoDjcY2eXXO9tubRvSE255gMo7vc6u/Ll31J3kBoIWVTF65hsPZrrwVMVRPZ/8+I6xO25OJVDL3V5q8oRFWkSWv7IH2JhX5ZLf38H4jrIYCM5rHdf24ouQNjbAieQEg5komrxqA7C2kYeXosMpEq4bXE07e4eAMpHF/bmr5yWv1avZEmLx6APIJfwDYGatQp+3q/kh4vm2/lZpn9O+P3kqT1+riHhEkLwDEXqnk7dcDes3ikeO93jxWvbiDtZJG3koX44GpN0NmQUgvcPdLXvnQNFG7Y6wjSt4RPbnHLB451Ds47r+ufFP+Shp5K12cDs7D6nWnDA2ZkdL7Jq982BWY0ETyAkDMlbiSnzbLM7uX/l4zNUhF4pgOoy6Ts6HVI9WNabvdpD5tj20eLjt5vdUj9USeiJK3x32T7u8A6x4IXbpO3m0aBfzVHb3VI8fVEpojVnC6Y5t1r3FZyeutHjkmSF4AiL8SV3KvrjWqL/1n1TTWsaF+ObZIdXqqXOkZ6+kS3uqRXk+njonhE/393Sf86bAypcbHe8tMXnXHhBPd44PyVgHhJu8GJa9f8T6hfwd0qTc9dFYNNOtxf2TI93liWHSF75jgLh7pfEjdPdbcaDUzq3esvORVd0zo7enudV4lv8mb5AWAmCmevN3+4hHuXYvGvHUQ3fUTR/zb2Q2Gk/fMWf9merLGO2LyRdfbykpe74Z6vZGtpGEamc94dy0a6fLf1XjwnfaM5d2ryFo8Un5OZ723rFK4rOQ9M2pecYiVNAAg/oom72mrlim7OuUV/7Q7m3e4xwwbUhW5wfFRLyXs0b1jvW4kDXvrNut72Q7un7zuFFl5Lz6nghndGlbjVi3TLB5tZvP2msU1RlWS9vZ78WkP9T49boKzy6zb7N7YuIw6r3uD5O4Tw8Mnxk6zhhUAJMA+K2nkGR06OxS43+zI0OkSu58ecgQ3jQyNnKnYqD+Yq7HJW9jIkPMxBGc5l5rNfEZ+CqGPaXT0TOVO5N/z2EfyAkAsVJq8DTbqxttYqQ7Oxidvg42YlB4s0dtN8gJAPDR18nZ5jasnROl711f5KTR18o4Nmwbo0VJDm0leAIiHpk7ebncQkxxiNFy8UTvhyStHdqkRbd2iVGMzyQsA8dDUyTuiR2j1erfXKyzhyeuO8B4cFN6E6oJIXgCIhaZO3jOnzT3lh0vU9RKfvGf6zbSlrlLDskheAIiF5k5eJ1W7ex1jJYdDJz55z4z0jzufwnjp4dAkLwDEQrMnbzmSn7xlIXkBIBZIXonkBQA0CskrkbwAgEYheSWSFwDQKCSvRPICABqF5JVIXgBAo5C8EskLAGgUklcieQEAjULySiQvAKBRSF6J5AUANArJK5G8AIBGIXklkhcA0Cgkr0TyAgAaRYjT1V/zIzYkTlX5KbSJ8ajfRPV6xeGozyYAwP6EGIo6MarWLzqr/BTaRG/Ub6J6w6I96rMJALC/c6Kn+mt+xLrF8So/hUNCjFRfjogJ0RH12QQA2N9hMRh1YlStBh2cp8RY1O+iWtX3dgMAGqFDiNGoM6NKp0X1zazHxYmo30a1xqtucwcANMRA7DOnFpFzJPY/QGrx+wMA0AhO5pyNOjWqMibEyeo/hgHRFfUbqcpIlzgW9akEACjPOTEc5+qeE7znavApHBKxnljkBK84FPWZBAAoT8cxIfqjTo4DJ84JIQb6avExtAnRFdupzWeHa1LxBwA0Rt+AEIPdMZzWe7q/VwjRWZPgTaVOOsc6cTaG4Xt2fFCIUwQvAMRI33Gh9MaLKvOxIzX7GI4cU0ccjPp9VWZQFfp4jX5+AAAapK9tQMTQsaO17dtsP3cq6rd0EOdOkrsAEEcd7XFTlyFFUb+pyhG7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE3P8PhUJwPOUO8j8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjQtMDctMjVUMjA6MTg6MDgrMDA6MDC0viaWAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI0LTA3LTI1VDIwOjE4OjA4KzAwOjAwxeOeKgAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNC0wNy0yNVQyMDoxODowOCswMDowMJL2v/UAAAAASUVORK5CYII="
    }
   },
   "cell_type": "markdown",
   "id": "ff62463c",
   "metadata": {},
   "source": [
    "![Airroutes%20-%20Copy%20of%20Copy%20of%20Page%202.png](attachment:Airroutes%20-%20Copy%20of%20Copy%20of%20Page%202.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7fd99746",
   "metadata": {},
   "source": [
    "### Variable Length Paths\n",
    "Now, we can execute openCypher pathfinding queries with variable length paths. \n",
    "Execute the query below to see different journeys you can take starting from Manchester-Boston, with up to three stops. Click on the graph tab to see the network diagram."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e486e320",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc -d <http://www.w3.org/2000/01/rdf-schema#label> \n",
    "\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "\n",
    "MATCH (origin:nepo::Airport {nepo::IATA: 'MHT'}) \n",
    "\n",
    "MATCH directFlights = (origin)-[r: nepo::hasDirectRouteTo*..3]->(n2)\n",
    "return directFlights\n",
    "limit 100"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "828e072d",
   "metadata": {},
   "source": [
    "### Neptune Analytics Algorithms\n",
    "\n",
    "Neptune Analytics provides a set of optimized in-database implementations of common graph algorithms, which are exposed as openCypher procedures. These algorithms analyze inherent aspects of the underlying graph structure, such as connectedness (path finding), relative importance (centrality), and community membership (community detection).\n",
    "\n",
    "For more information about how to run each of the different algorithms, visit the [Neptune Analytics Algorithms documentation](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/algorithms.html).\n",
    "\n",
    "Here, we run the PageRank algorithm to see which airports are the busiest."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7041e560",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%oc\n",
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
    "PREFIX nepo: <http://neptune.aws.com/ontology/airroutes/>\n",
    "\n",
    "MATCH (airport:nepo::Airport)\n",
    "\n",
    "CALL neptune.algo.pageRank(airport, {\n",
    "   edgeLabels : [nepo::hasDirectRouteTo] \n",
    "})\n",
    "YIELD node\n",
    "MATCH (node)-[e: nepo::hasDirectRouteTo]-()\n",
    "\n",
    "RETURN id(airport), airport.rdfs::label, COUNT(e) AS connections, airport.nepo::ICAO\n",
    "ORDER BY connections DESC\n",
    "LIMIT 100"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
